SignalR হল একটি ASP.NET Core লাইব্রেরি যা ওয়েব অ্যাপ্লিকেশনের জন্য রিয়েল-টাইম কমিউনিকেশন সক্ষম করে। এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে দুই-দিক নির্দেশিত যোগাযোগ (bidirectional communication) প্রতিষ্ঠা করতে সাহায্য করে। SignalR এর মাধ্যমে আপনি ওয়েব পৃষ্ঠায় রিয়েল-টাইম ডেটা আপডেট করতে পারেন, যেমন চ্যাট অ্যাপ্লিকেশন, লাইভ নোটিফিকেশন, ড্যাশবোর্ড, ইত্যাদি।
SignalR ব্যবহার করে রিয়েল-টাইম ডেটা আপডেট করার জন্য আপনাকে কিছু নির্দিষ্ট ধাপ অনুসরণ করতে হবে।
ASP.NET Core এ SignalR ব্যবহার করতে প্রথমে কিছু প্যাকেজ ইনস্টল করতে হবে।
SignalR ব্যবহার শুরু করার জন্য প্রথমে আপনার প্রজেক্টে SignalR প্যাকেজ ইনস্টল করুন। এটি করতে, NuGet প্যাকেজ ম্যানেজার বা .NET CLI ব্যবহার করতে পারেন।
.NET CLI:
dotnet add package Microsoft.AspNetCore.SignalR
SignalR এর মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ সম্পন্ন হয় Hub এর মাধ্যমে। হাব হল এমন একটি ক্লাস যা সিগন্যাল সিস্টেমের কেন্দ্রীয় পয়েন্ট হিসেবে কাজ করে। সার্ভার ক্লায়েন্টকে ইভেন্ট বা ডেটা পাঠাতে এবং ক্লায়েন্ট সার্ভারের কাছে ডেটা পাঠাতে হাব ব্যবহার করে।
প্রথমে একটি SignalR Hub ক্লাস তৈরি করুন:
using Microsoft.AspNetCore.SignalR;
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
এখানে SendMessage
মেথডটি ক্লায়েন্ট থেকে মেসেজ গ্রহণ করে এবং তা সকল ক্লায়েন্টকে প্রেরণ করে ReceiveMessage
মেথডের মাধ্যমে।
SignalR হাব সার্ভারে কনফিগার করতে হবে। এর জন্য Startup.cs
বা Program.cs
ফাইলে নিম্নলিখিত কোড যুক্ত করুন।
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<ChatHub>("/chathub");
});
}
এখানে MapHub<ChatHub>("/chathub")
সিগন্যাল হাবকে একটি URL এ ম্যাপ করে, যার মাধ্যমে ক্লায়েন্টরা chathub
এ কানেক্ট করতে পারে।
SignalR হাব সার্ভারে কনফিগার করার পর, এখন ক্লায়েন্ট সাইডে JavaScript দিয়ে SignalR ব্যবহার করা যাবে।
প্রথমে SignalR JavaScript লাইব্রেরি যুক্ত করতে হবে। এটি CDN অথবা NuGet প্যাকেজের মাধ্যমে করা যেতে পারে।
<script src="https://cdn.jsdelivr.net/npm/@microsoft/signalr@5.0.13/dist/browser/signalr.min.js"></script>
ক্লায়েন্ট সাইডে SignalR হাবের সাথে কানেক্ট করতে নিম্নলিখিত কোড ব্যবহার করুন:
const connection = new signalR.HubConnectionBuilder()
.withUrl("/chathub")
.build();
connection.on("ReceiveMessage", function(user, message) {
const msg = user + ": " + message;
document.getElementById("messagesList").innerHTML += "<li>" + msg + "</li>";
});
connection.start().catch(function(err) {
return console.error(err.toString());
});
এখানে ReceiveMessage
ইভেন্টটি সার্ভার থেকে প্রাপ্ত মেসেজগুলোকে ক্লায়েন্টে রেন্ডার করছে। SignalR হাবের সাথে কানেক্ট করার জন্য start()
মেথড ব্যবহার করা হয়েছে।
ক্লায়েন্ট থেকে সার্ভারে মেসেজ পাঠানোর জন্য, হাবের SendMessage
মেথডটি কল করতে হবে:
document.getElementById("sendButton").addEventListener("click", function(event) {
const user = document.getElementById("userInput").value;
const message = document.getElementById("messageInput").value;
connection.invoke("SendMessage", user, message).catch(function(err) {
return console.error(err.toString());
});
event.preventDefault();
});
এখানে SendMessage
মেথডের মাধ্যমে ব্যবহারকারীর নাম এবং মেসেজ পাঠানো হচ্ছে।
SignalR ব্যবহার করে রিয়েল-টাইম ডেটা আপডেট করার সুবিধা হল যে এটি ব্রাউজার রিফ্রেশ না করেই ডেটা লাইভ আপডেট করতে সক্ষম। উদাহরণস্বরূপ:
SignalR এর মাধ্যমে আপনি এই ধরনের লাইভ, রিয়েল-টাইম ইন্টারঅ্যাকশন সহজে তৈরি করতে পারেন।
ASP.NET Core SignalR একটি শক্তিশালী টুল যা রিয়েল-টাইম ওয়েব অ্যাপ্লিকেশন তৈরিতে সহায়তা করে। এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে দ্রুত এবং কার্যকরী ডেটা প্রেরণ সক্ষম করে। SignalR ব্যবহার করে আপনি চ্যাট, লাইভ আপডেট, নোটিফিকেশন, ড্যাশবোর্ড ইত্যাদি তৈরি করতে পারেন। SignalR হাব এবং JavaScript ক্লায়েন্ট সাইড ইন্টিগ্রেশন ব্যবহার করে সিস্টেমটি সহজেই তৈরি করা যায়।
common.read_more